package com.bukanir.android.application;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import com.bukanir.android.entities.Movie;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Collections;
public class Favorites {
private Context context;
private SharedPreferences preferences;
public Favorites(Context context) {
this.context = context.getApplicationContext();
preferences = PreferenceManager.getDefaultSharedPreferences(this.context);
}
public ArrayList<Movie> getFavorites() {
ArrayList<Movie> favorites = new ArrayList<>();
String favs = preferences.getString("favorites", "");
Type listType = new TypeToken<ArrayList<Movie>>() {}.getType();
ArrayList<Movie> list = new Gson().fromJson(favs, listType);
if(list != null) {
favorites = list;
}
Collections.sort(favorites);
return favorites;
}
public void addToFavorites(Movie movie) {
ArrayList<Movie> favorites = getFavorites();
if(!favorites.contains(movie)) {
favorites.add(movie);
}
String favs = new Gson().toJson(favorites);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("favorites", favs);
editor.apply();
}
public void removeFromFavorites(Movie movie) {
ArrayList<Movie> favorites = getFavorites();
favorites.remove(movie);
String favs = new Gson().toJson(favorites);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("favorites", favs);
editor.apply();
}
}